import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';
import {HelpcenterserviceService} from '../helpcenterservice.service';

@Component({
    selector: 'app-basehelp',
    templateUrl: './basehelp.component.html',
    // styleUrls: ['./basehelp.component.less'],
})
export class BasehelpComponent implements OnInit {

    @Input() title: string;  // 帮助标题
    @Input() hurl: string;  // 请求后端接口的 url -- 必须有
    @Input() hmethod: string;  // 请求后端接口的 请求方式 -- 必须有
    @Input() hbody: string;  // 请求后端接口的 请求参数 -- 必须有

    // 务必保证使用result变量名 弹出选中后事件
    @Output() result: EventEmitter<any> = new EventEmitter();

    constructor(
        private service: HelpcenterserviceService
    ) {
    }

    returnData: [] = []; // 返回的数据
    showData: any[] = []; // 页面显示的数据

    // 默认选中的数据
    selectedStatus1 = {code: 0, name: ''};
    selectedStatus; // 选中的数据

    noData = true;

    ngOnInit() {
        // console.log('basehelp ngOnInit');
        this.noData = false;
        if (this.hurl) {
            this.service.helpCenterCommonRequest(this.hurl, this.hbody, this.hmethod).then(res => {
                // console.log(' basehelp res = ', res);
                this.noData = true;
                this.returnData = res;
                this.showData = res;
            }, err => {
                this.noData = true;
                this.returnData = [];
                this.showData = [];
                console.log('基础帮助组件(basehelp.component.ts)请求数据报错：err=', err);
            });
        } else {
            console.log('基础帮助组件(basehelp.component.ts)请求数据url为空');
            this.noData = true;
        }

    }

    // 关闭modal-传给调用组件
    dismiss(cancel?: boolean) {
        const backParams = {
            'dismissed': true,
            'callBackParameter': cancel ? null : this.selectedStatus
        };

        this.result.emit(backParams);
        // 使用注入的ModalController此页面
        // 可以“dismiss”自身并有选择地传回数据
        // this.modalController.dismiss({
        //     'dismissed': true,
        //     'callBackParameter': cancel ? null : this.selectedStatus
        // });
    }

    // 点击选中数据
    onChange(event) {
        this.selectedStatus = event.value;
    }

    // 前端过滤
    frontEndFilter(e) {
        this.showData = this.returnData.filter((item: any) => {
            return ((item.code.indexOf(e) !== -1) || (item.name.indexOf(e) !== -1));
        });
    }

}
